package com.ydd.service.impl;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.ydd.dto.YddLinkDTO;
import com.ydd.dto.YddLinkQueryDTO;
import com.ydd.entity.YddLink;
import com.ydd.mapper.YddLinkMapper;
import com.ydd.result.PageResult;
import com.ydd.service.YddLinkService;
import com.ydd.vo.YddLinkVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;

@Service
public class YddLinkServiceImpl implements YddLinkService {

    @Autowired
    private YddLinkMapper yddLinkMapper;

    /**
     * 链接详情
     *
     * @param id
     * @return
     */
    @Override
    public YddLinkVO rowInfo(Integer id) {

        YddLinkVO yddLinkVO = yddLinkMapper.getRowInfoById(id);
        return yddLinkVO;
    }

    /**
     * 链接列表
     *
     * @param yddLinkQueryDTO
     * @return
     */
    @Override
    public PageResult querylist(YddLinkQueryDTO yddLinkQueryDTO) {

        PageHelper.startPage(yddLinkQueryDTO.getPage(), yddLinkQueryDTO.getLimit());

        Page<YddLinkVO> page = yddLinkMapper.listAll(yddLinkQueryDTO);

        PageResult pageResult = PageResult.builder()
                .count(page.getTotal())
                .totalPages(page.getPages())
                .pageSize(yddLinkQueryDTO.getLimit())
                .currentPage(yddLinkQueryDTO.getPage())
                .data(page.getResult())
                .build();

        return pageResult;
    }

    /**
     * 链接添加
     * @param yddLinkDTO
     */
    @Override
    public void addYddLink(YddLinkDTO yddLinkDTO) {
        YddLink yddLink = new YddLink();
        BeanUtils.copyProperties(yddLinkDTO, yddLink);
        yddLink.setDefaultData(1);
        yddLinkMapper.add(yddLink);
    }

    /**
     * 链接删除
     *
     * @param id
     */
    @Override
    public void deleteYddLink(Integer id) {
        yddLinkMapper.deleteById(id);
    }

    /**
     * 链接修改
     *
     * @param yddLinkDTO
     */
    @Override
    public void updateYddLink(YddLinkDTO yddLinkDTO) {
        YddLink yddLink = new YddLink();
        BeanUtils.copyProperties(yddLinkDTO, yddLink);
        yddLinkMapper.updateById(yddLink);
    }
}
